package com.springdoor.wx.api.controller;

import com.springdoor.wx.api.entity.ResultCli;
import com.springdoor.wx.api.entity.WxUser;
import com.springdoor.wx.api.service.WxUserService;
import com.springdoor.wx.config.annotation.Log;
import com.springdoor.wx.constant.enums.BusinessType;
import com.springdoor.wx.core.controller.BaseController;
import com.springdoor.wx.core.domain.AjaxResult;
import com.springdoor.wx.core.domain.entity.LoginUser;
import com.springdoor.wx.utils.string.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RequestMapping("wxcli")
@RestController
public class WxCliController extends BaseController {

    @Autowired
    private WxUserService userService;

    @GetMapping("getCliInfo")
    public AjaxResult fetchUserInfo() {
        return success(userService.fetchUserInfo());
    }

    @PostMapping("updateCliInfo")
    @Log(title = "小程序用户->修改客户信息", businessType = BusinessType.UPDATE)
    public AjaxResult updateCliInfo(@RequestBody ResultCli cli) {
        if (cli == null || StringUtils.isEmpty(cli.getNickName())) {
            return error("参数有误");
        }
        LoginUser loginUser = getLoginUser();
        WxUser param = new WxUser();
        param.setUserId(loginUser.getUserId());
        param.setUserName(cli.getNickName());
        param.setSex(cli.getGender());
        param.setPhone(cli.getPhone());
        param.setEmail(cli.getEmail());
        return success(userService.updateWxUser(loginUser, param));
    }

//    @PostMapping("updateName")
//    @Log(title = "小程序用户->修改昵称", businessType = BusinessType.UPDATE)
//    public AjaxResult updateUserName(@RequestBody WxUser user) {
//        if (user == null || StringUtils.isEmpty(user.getUserName())) {
//            return error("参数有误");
//        }
//        WxUser param = new WxUser();
//        param.setUserId(getUserId());
//        param.setUserName(user.getUserName());
//        return success(userService.updateWxUser(param));
//    }
//
//    @PostMapping("updatePhone")
//    @Log(title = "小程序用户->修改手机号", businessType = BusinessType.UPDATE)
//    public AjaxResult updateUserPhone(@RequestBody WxUser user) {
//        if (user == null || StringUtils.isEmpty(user.getPhone())) {
//            return error("参数有误");
//        }
//        WxUser param = new WxUser();
//        param.setUserId(getUserId());
//        param.setPhone(user.getPhone());
//        return success(userService.updateWxUser(param));
//    }
//
//    @PostMapping("updateSex")
//    @Log(title = "小程序用户->修改性别", businessType = BusinessType.UPDATE)
//    public AjaxResult updateUserSex(@RequestBody WxUser user) {
//        if (user == null || StringUtils.isEmpty(user.getSex())) {
//            return error("参数有误");
//        }
//        WxUser param = new WxUser();
//        param.setUserId(getUserId());
//        param.setSex(user.getSex());
//        return success(userService.updateWxUser(param));
//    }
}
